using System;
using System.ComponentModel.DataAnnotations;
using HengTong.Model._Admin;
using WalkingTec.Mvvm.Core;

// 引入枚举命名空间

namespace HengTong.Model.Db.Other
{
    /// <summary>
    /// 访客信息表
    /// </summary>
    public class SysVisitorInformation : BasePoco
    {
        [Required]
        [Display(Name = "姓名", Description = "访客姓名", GroupName = "访客信息")]
        [StringLength(64)]
        public string Name { get; set; }

        [Required]
        [Display(Name = "手机号", Description = "访客手机号", GroupName = "访客信息")]
        [StringLength(11)]
        public string Phone { get; set; }

        [Required]
        [Display(Name = "身份证号", Description = "访客身份证号", GroupName = "访客信息")]
        [StringLength(18)]
        public string IdCardNo { get; set; }

        [Display(Name = "身份证正面照片", Description = "身份证正面照片文件", GroupName = "身份信息")]
        public Guid? IdCardFrontPhotoId { get; set; }

        [Display(Name = "身份证正面照片", Description = "身份证正面照片文件", GroupName = "身份信息")]
        public FileAttachment IdCardFrontPhoto { get; set; }

        [Display(Name = "身份证反面照片", Description = "身份证反面照片文件", GroupName = "身份信息")]
        public Guid? IdCardBackPhotoId { get; set; }

        [Display(Name = "身份证反面照片", Description = "身份证反面照片文件", GroupName = "身份信息")]
        public FileAttachment IdCardBackPhoto { get; set; }

        [Display(Name = "所属单位/公司", Description = "访客所属单位或公司", GroupName = "访客信息")]
        [StringLength(128)]
        public string Company { get; set; }

        [Display(Name = "车牌号", Description = "访客车辆车牌号", GroupName = "访客信息")]
        [StringLength(32)]
        public string CarNo { get; set; }

        /*//微信用户，如果没有需要新增到 SysWechatUser 表中
        [Display(Name = "微信用户", Description = "关联的微信用户主键", GroupName = "其他信息")]
        public Guid? WechatUserId { get; set; }

        [Display(Name = "微信用户", Description = "关联的微信用户对象", GroupName = "其他信息")]
        public SysWechatUser WechatUser { get; set; }*/
        
        //绑定用户，先创建微信用户，如果没有需要新增到 SysWechatUser 表中
        [Display(Name = "绑定用户", Description = "关联的系统用户对象", GroupName = "系统用户绑定")]
        public FrameworkUser User { get; set; }

        [Display(Name = "绑定用户", Description = "关联的系统用户主键", GroupName = "系统用户绑定")]
        public Guid? UserId { get; set; }

        [Display(Name = "备注信息", Description = "备注信息", GroupName = "访客信息")]
        [StringLength(256)]
        public string Remark { get; set; }

        [Display(Name = "黑名单状态", Description = "黑名单状态", GroupName = "黑名单信息")]
        public bool BlackStatus { get; set; }
        

        [Display(Name = "黑名单原因", Description = "黑名单原因", GroupName = "黑名单信息")]
        [StringLength(256)]
        public string BlackReason { get; set; }
    }
}